package com.itheima.edu.info.manager.dao;

import com.itheima.edu.info.manager.domain.Student;

public class StudentDao {
    //局部变量跟着方法走,调一次方法,局部变量就重新创建一次
    //成员变量跟着对象走,随着对象的创建,成员变量开始加载,初始化默认值
    //静态成员变量属于类,随着类的加载,静态成员开始加载
    //定义一个长度为5的数组容器,充当系统的数据仓库
    private static Student[] stus = new Student[5];

    static {
        System.out.println("------------系统数据加载中--------------");
        stus[0] = new Student("heima001", "柳岩", "23", "1991-11-11");
        stus[1] = new Student("heima002", "杨幂", "27", "1997-12-12");
    }

    //添加功能
    public boolean addStudent(Student stu) {
        //使用标记位思想,找到数组元素为null的索引,先假设数组已经装满
        int index = -1;
        for (int i = 0; i < stus.length; i++) {
            if (stus[i] == null) {
                index = i;
                break;
            }
        }
        //根据标记位数值进行相应操作
        if (index == -1) {
            return false;
        } else {
            stus[index] = stu;
            return true;
        }
    }

    //删除功能
    public void deleteStudent(String id) {
        //使用标记位判断学号位置
        int index = getIndex(id);
        stus[index] = null;
    }

    //修改功能
    public void updateStudent(String updateId, Student stu) {
        int index = getIndex(updateId);
        stus[index] = stu;
    }

    //查看功能
    public Student[] findAllStudent() {
        return stus;
    }

    //根据学生对象id寻找学生对象索引的功能
    public int getIndex(String id) {
        int index = -1;
        for (int i = 0; i < stus.length; i++) {
            if (stus[i] != null && id.equals(stus[i].getId())) {
                index = i;
                break;
            }
        }
        return index;
    }


}
